/* 
 * EventoAction.java
 * 
 * Data de criação: 07/09/2010
 * 
 * O2SOLUTIONS - SOLUÇÕES EM TECNOLOGIA DA INFORMAÇÃO. 
 *
 */
package br.com.o2solutions.siso.webapp.action;

import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Observer;

import br.com.o2solutions.core.service.Service;
import br.com.o2solutions.siso.integration.entidade.Evento;
import br.com.o2solutions.siso.integration.entidade.GrupoEvento;
import br.com.o2solutions.siso.webapp.interceptor.ExceptionInterceptorAnnotation;

/**
 * Classe responsável por implementar as operações da boundary relacionada ao
 * objeto de domínio {@link Evento}.
 * 
 * @author Osvaldeir
 * @since 07/09/2010
 * 
 */
@Name("eventoAction")
@ExceptionInterceptorAnnotation
public class EventoAction extends
		BaseAction<br.com.o2solutions.siso.integration.entidade.Evento, Service<Evento>> {

	private static final long serialVersionUID = 1L;

	@In(create = true)
	private GrupoEventoAction grupoEventoAction;

	@Override
	@In(value = "#{eventoService}", scope = ScopeType.SESSION)
	public void setService(Service<Evento> service) {
		super.setService(service);
	}

	@Override
	@Observer({ "br.com.o2solutions.siso.webapp.action.EventoAction_SAVED",
			"br.com.o2solutions.siso.webapp.action.EventoAction_REMOVED",
			"br.com.o2solutions.siso.webapp.action.EventoAction_UPDATED" })
	public void updateResultList() {
		super.updateResultList();
	}

	@Override
	protected Evento createNewEntity() {
		Evento createdNewEntity = super.createNewEntity();
		createdNewEntity.setGrupo(new GrupoEvento());
		return createdNewEntity;
	}

	/**
	 * Remove o {@link GrupoEvento} vinculado ao Evento
	 */
	public void removerGrupoEvento() {
		getEntity().setGrupo(new GrupoEvento());
	}

	@Override
	public void loadEntityByLinkId() {
		grupoEventoAction.loadEntityByLinkId();
		getEntity().setGrupo(grupoEventoAction.getEntity());

	}

}
